#!/bin/bash

# 监控间隔（秒）
INTERVAL=5

# 输出文件
OUTPUT_FILE="performance_metrics.log"

# 清空输出文件
> $OUTPUT_FILE

echo "开始性能监控..."
echo "数据将保存到: $OUTPUT_FILE"

while true; do
    # 获取时间戳
    TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
    
    # CPU使用率
    CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}')
    
    # 内存使用情况
    MEMORY_USAGE=$(free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2}')
    
    # 磁盘使用情况
    DISK_USAGE=$(df -h | awk '$NF=="/"{printf "%s", $5}')
    
    # 网络连接数
    CONNECTIONS=$(netstat -an | grep ESTABLISHED | wc -l)
    
    # 进程信息
    PROCESS_INFO=$(ps -p $(pgrep goserver) -o %cpu,%mem,rss | tail -1)
    
    # 写入日志
    echo "$TIMESTAMP CPU:$CPU_USAGE% MEM:$MEMORY_USAGE DISK:$DISK_USAGE CONN:$CONNECTIONS PROC:$PROCESS_INFO" >> $OUTPUT_FILE
    
    sleep $INTERVAL
done 